package org.morningangel.dao;

import java.util.List;

import org.morningangel.bean.Activity;
import org.morningangel.bean.Status;
import org.morningangel.bean.User;

public interface StatusDao {

	/**
	 * 添加用户对活动的状态，并修改活动感兴趣/参加的人数
	 * @param status			要添加的状态对象
	 * @return						返回受影响记录的条数
	 */
	public Integer save(Status status);
	/**
	 * 根据userId和activityId查询出用户对活动的状态
	 * @param userId			用户id
	 * @param activityId		活动id
	 * @return						若有，则返回Status对象；若无，则返回null
	 */
	public Status get(Integer userId, Integer activityId);
	/**
	 * 修改该用户对活动的状态，并修改活动感兴趣/参加的人数
	 * 	@param old				用户原来对活动的状态(和现在对比，好修改人数)
	 * @param status			用户对活动的状态
	 * @return						返回受影响记录的条数
	 */
	public Integer update(Status old, Status status);
	/**
	 * 返回用户感兴趣或参加的活动
	 * @param userId				用户id
	 * @param status				状态
	 * @return							返回活动列表
	 */
	public List<Activity> getActivities(Integer userId, Integer status) ;
	/**
	 * 根据活动id和状态分页查询有哪些用户
	 * @param activityId		活动id
	 * @param status			状态
	 * @param pageNum		页数
	 * @param pageSize		每页记录数
	 * @return
	 */
	public List<User> getUsers(Integer activityId, Integer status, Integer pageNum, Integer pageSize);
}
